Version management refers to formal processes for making information technology (IT) changes, such as installations, upgrades, patching and migrations of a server cluster, in conjunction with corresponding updates to dependent thick clients (i.e., a client that incorporates proprietary software to communicate with an application executed by a server), while reducing negative impacts to service levels. Two examples of configuration management processes are sticky sessions and Blue-Green deployment.
Sticky sessions are used with load balancing during an upgrade of the server cluster to achieve server affinity where a router or load balancer with sticky sessions support assigns a single server to a particular client/user based on their HTTP session or IP address. While this solution eliminates constant client re-download and hanging requests, it has drawbacks. Sticky sessions tie a client to a specific server which leads to uneven load distribution in the cluster, thus defeating the purpose of any load balancer to equally distribute client load. Another drawback is defining the rules for sticky sessions—the rules must enumerate all possible uniform resource identifiers (URIs) that need to be made sticky, which is a maintenance problem as URIs change and the new ones are added in the course of application development.
Blue-Green deployment is a change management technique for releasing software code that reduces downtime and risk by running two identical server production environments called Blue and Green. At any time, only one of the environments is live, with the live environment serving all production traffic, while new code is released in the inactive environment. Blue-green deployments need two identical sets of hardware, and that hardware carries added costs and overhead without actually adding capacity or improving utilization.